package com.intelligent.service;

import com.intelligent.pojo.Warehouse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
* @author lenovo
* @description 针对表【warehouse(仓库信息表)】的数据库操作Service
* @createDate 2025-08-27 15:58:27
*/
public interface WarehouseService extends IService<Warehouse> {

	/**
	 * 分页查询仓库（左连接用户表以获取负责人用户名），支持条件筛选。
	 * 空参数不参与筛选。
	 *
	 * @param page 分页对象
	 * @param warehouseCode 仓库编码（模糊）
	 * @param warehouseName 仓库名称（模糊）
	 * @param username 负责人用户名（模糊）
	 * @param status 状态（精确）0启用 1禁用
	 * @return 分页结果
	 */
	IPage<Warehouse> pageWarehouse(Page<Warehouse> page,
	                              String warehouseCode,
	                              String warehouseName,
	                              String username,
	                              Integer status);

	/**
	 * 根据主键查询仓库信息，联查负责人用户名
	 * @param warehouseId 仓库id
	 * @return 仓库信息（含username）
	 */
	Warehouse getByIdWithUser(String warehouseId);

	/**
	 * 添加仓库
	 * @param warehouse 仓库信息
	 * @return 添加后的仓库信息
	 */
	Warehouse addWarehouse(Warehouse warehouse);

	/**
	 * 修改仓库
	 * @param warehouse 仓库信息
	 * @return 修改后的仓库信息
	 */
	Warehouse updateWarehouse(Warehouse warehouse);

	/**
	 * 删除仓库
	 * @param warehouseId 仓库id
	 */
	void deleteWarehouse(String warehouseId);

}
